package am.bll;

import am.bll.entity.AccountItem;
import am.exception.ArgumentNullException;
import am.exception.DatabaseException;
import am.exception.InvalidOperationException;

public interface ItemEditor
{
    /**
     * 保存item实体当前的状态
     * @param item 账目实体, 保存着修改后的状态, Id必须被正确的设置
     * @throws ArgumentNullException item为null
     * @throws InvalidOperationException 数据库中找不到item对应的实体
     * @throws DatabaseException 与数据库连接相关的异常
     */
    void editItem(AccountItem item) throws ArgumentNullException, InvalidOperationException, DatabaseException;
}
